home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / kerberos / pc / krb_src.lha / INCLUDE / DES.H < prev    next >
Encoding:
C/C++ Source or Header  |  1991-08-01  |  1.8 KB  |  60 lines

  1. /*
  2.  * $Source: /mit/kerberos/src/include/RCS/des.h,v $
  3.  * $Author: rfrench $
  4.  * $Header: des.h,v 4.11 89/01/17 16:24:57 rfrench Exp $ 
  5.  *
  6.  * Copyright 1987, 1988 by the Massachusetts Institute of Technology.
  7.  *
  8.  * For copying and distribution information, please see the file
  9.  * <mit-copyright.h>.
  10.  *
  11.  * Include file for the Data Encryption Standard library.
  12.  */
  13.  
  14. /* only do the whole thing once     */
  15. #ifndef DES_DEFS
  16. #define DES_DEFS
  17.  
  18. #include <mit_copy.h>
  19.  
  20. typedef unsigned char des_cblock[8];    /* crypto-block size */
  21. /* Key schedule */
  22. typedef struct des_ks_struct { des_cblock _; } des_key_schedule[16];
  23.  
  24. #define DES_KEY_SZ     (sizeof(des_cblock))
  25. #define DES_ENCRYPT    1
  26. #define DES_DECRYPT    0
  27.  
  28. #ifndef NCOMPAT
  29. #define C_Block des_cblock
  30. #define Key_schedule des_key_schedule
  31. #define ENCRYPT DES_ENCRYPT
  32. #define DECRYPT DES_DECRYPT
  33. #define KEY_SZ DES_KEY_SZ
  34. #define string_to_key des_string_to_key
  35. #define read_pw_string des_read_pw_string
  36. #define random_key des_random_key
  37. #define pcbc_encrypt des_pcbc_encrypt
  38. #define key_sched des_key_sched
  39. #define cbc_encrypt des_cbc_encrypt
  40. #define cbc_cksum des_cbc_cksum
  41. #define C_Block_print des_cblock_print
  42. #define quad_cksum des_quad_cksum
  43. typedef struct des_ks_struct bit_64;
  44. #endif
  45.  
  46. #define des_cblock_print(x) des_cblock_print_file(x, stdout)
  47.  
  48. int des_check_key_parity(des_cblock);
  49. int des_is_weak_key(des_cblock);
  50.  
  51. /* Function prototypes */
  52. int des_key_sched(des_cblock,des_key_schedule);
  53. int des_ecb_encrypt(unsigned long*,unsigned long*,des_key_schedule,int);
  54. int des_pcbc_encrypt(des_cblock*,des_cblock*,long,des_key_schedule,
  55.                         des_cblock*,int);
  56. int des_is_weak_key(des_cblock);
  57. void des_fixup_key_parity(des_cblock);
  58. int des_check_key_parity(des_cblock);
  59. #endif    /* DES_DEFS */
  60.